Lorsque vous utilisez des formules dans Ragic, vous pouvez être amenés à vous posez des questions telles que :
“Pourquoi la formule fonctionnait-elle au départ, puis a-t-elle cessé de se mettre à jour après sa modification ?”
“Pourquoi la formule ne s'est-elle pas déclenchée après une importation de données, une mise à jour des valeurs dans une autre feuille ou une conversion d'enregistrement ?”
Cela s'explique par une règle fondamentale de Ragic : les formules se déclenchent uniquement à l'endroit où les données sont saisies. Par défaut, une formule est exécutée uniquement lorsque vous saisissez ou modifiez manuellement des données sur la même feuille (interface) où elle est définie.
Si vous ajoutez ou modifiez une formule après la création d'un enregistrement, le champ ne sera pas automatiquement recalculé selon cette nouvelle formule.
En effet, les formules ne se déclenchent qu'au moment de la saisie des données. Autrement dit, si une formule est ajoutée ou modifiée après la saisie des données, elle ne s'appliquera pas aux enregistrements existants tant que ceux-ci ne seront pas modifiés manuellement.
Ce fonctionnement permet d'optimiser les performances du système et d'éviter toute modification involontaire des données existantes.
Pour appliquer la formule mise à jour à tous les enregistrements existants, vous pouvez soit modifier manuellement chaque enregistrement afin de déclencher un recalcul, soit lancer un recalcul des formules, qui effectue cette opération en arrière-plan sans intervention manuelle.
Pour plus d'informations, consultez la documentation sur les formules.
Une formule ne se déclenche que si la modification est effectuée directement sur la feuille où cette formule est définie.
Par exemple, si une formule est configurée sur la feuille "Commandes", la modification de données associées, comme un prix, sur une autre feuille (par exemple "Produits") ne la déclenchera pas. La formule sera recalculée uniquement lorsque vous modifierez directement des données sur la feuille "Commandes" (par exemple la quantité d'un article).
De même, si les données de la feuille "Commandes" sont mises à jour par d'autres fonctionnalités plutôt que par une saisie manuelle, les formules peuvent ne pas se déclencher automatiquement.
Dans ces cas, une configuration supplémentaire est nécessaire, comme expliqué ci-dessous.
Lorsque vous mettez à jour des champs d'une autre feuille à l'aide d'un bouton d'action (par exemple Mettre à jour les valeurs sur une autre feuille ou Convertir des enregistrements) ou avec une importation, les formules ne seront pas déclenchées, sauf si l'option Recalculer toutes les formules est activée dans les Paramètres avancés.
Dans Ragic, la page formulaire et la page liste sont considérées comme deux interfaces distinctes. Une formule définie sur l'une ne sera pas déclenchée lors de la modification des données sur l'autre.
Par exemple, si une formule est définie uniquement sur la page formulaire, la modification du même champ depuis la page liste ne la déclenchera pas, et inversement.
Si vous modifiez fréquemment des données depuis la page liste, il est recommandé d'y ajouter les champs concernés et d'y définir les mêmes formules en mode design. Ainsi, les formules fonctionneront correctement quel que soit l'endroit où les données sont saisies.
Chaque version d'une feuille utilisant la fonctionnalité Versions multiples possède sa propre configuration de formules. Si nécessaire, les formules doivent être configurées séparément pour chaque version.
Si un même champ utilise des formules différentes selon les versions, assurez-vous que les résultats calculés restent cohérents. Dans le cas contraire, les valeurs risquent d'être écrasées lors du changement de version.
Vous pouvez utiliser la fonction Informations de champ pour consulter la configuration des formules de ce champ dans toutes les versions.
Pour les fonctionnalités Nouvelle feuille à partir d'une sous-table et Sous-tables de référence, ouvrez les Paramètres de la feuille dans la barre latérale gauche du mode design de la page formulaire, puis activez l'option Recalculer toutes les formules sur les feuilles parentes ou liées.
Pour plus de détails, consultez cette documentation.
(1) Erreurs de syntaxe dans les formules
Vérifiez que la formule est correctement rédigée.
Pour les formules conditionnelles (fonction IF), notez les points suivants :
(a) Consultez cette section afin de vérifier si .RAW est nécessaire dans votre formule.
(b) Les fonctions TODAY() et NOW() ne peuvent actuellement pas être utilisées directement dans IF(). Créez plutôt un champ distinct calculant TODAY() ou NOW(), puis référencez ce champ dans votre formule conditionnelle. Consultez des exemples ici.
(2) Incompatibilité entre le type de champ et la formule
Certaines formules ne fonctionnent qu'avec certains types de champ. Par exemple, les opérations arithmétiques ou de comparaison ne s'appliquent qu'aux champs Nombre, Monnaie et Date.
(3) Erreurs de recalcul liées aux champs auto-générés
La valeur finale enregistrée dans un champ auto-généré peut être différente de celle affichée pendant la saisie, notamment lorsque plusieurs utilisateurs créent des enregistrements simultanément.
Par exemple, deux utilisateurs peuvent voir le même numéro auto-généré. Une fois le premier enregistrement enregistré, la valeur du second est automatiquement modifiée afin d'éviter les doublons.
Si une formule référence ce champ auto-généré, le résultat peut sembler correct avant l'enregistrement, puis devenir incorrect après celui-ci.
Pour éviter ce problème, utilisez un workflow postérieur à l'enregistrement afin de déclencher un recalcul des formules en arrière-plan lorsque votre feuille contient des formules faisant référence à des champs auto-générés.
(4) Problèmes de recalcul quotidien avec la formule TODAY
Consultez cet article pour connaître les étapes de dépannage.
Pour mettre à jour les formules des enregistrements existants, vous pouvez soit passer en mode design et lancer un recalcul des formules sur la feuille, soit créer un bouton d'action Appliquer toutes les formules à cet enregistrement.
Si vous souhaitez que le système recalcule automatiquement les formules chaque jour, par exemple lorsque vous utilisez TODAYTZ() pour obtenir la date du jour, vous pouvez configurer un workflow de recalcul quotidien des formules.